package com.token.sysflow.bean;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import com.token.sql.IntegrateSql;
import com.token.sql.AbstractTableBean;
/**
 * 数据流转路径-退回使用
 * @author 代码创建
 */
public class FSysFlowRecord extends AbstractTableBean {

    private String SysAddTime; //创建时间
    private String KeyUnid; //单据关联
    private String Approver; //办理人账号ID
    private String FlowId; //当前流程
    private String StepId; //当前环节
    private String StepType; //环节类型
    private int FlowType; //流程类型 0 主  1 子
    private String StepName; //环节名称

    public static String TABLE_NAME = "F_Sys_FlowRecord";
    public static String TABLEKEY_NAME = "RecordId";
    public FSysFlowRecord (IntegrateSql f){
        super(f,TABLE_NAME);
        this.setKeyName(TABLEKEY_NAME);
    }

    public FSysFlowRecord (IntegrateSql f,ResultSet rs) throws SQLException{
        super(f,TABLE_NAME);
        this.setKeyName(TABLEKEY_NAME);
        this.initParamToRs(rs);
    }

    public FSysFlowRecord (IntegrateSql f,String keyValue) throws SQLException{
        super(f,TABLE_NAME);
        this.setKeyName(TABLEKEY_NAME);
        setCodePrepare(selectCodeById().toString());
        prepareSql.setPstValue(1, keyValue);
        ResultSet rs = executeQuery();
        if(rs.next()){
            initParamToRs(rs);
        }else{
            initParam();
        }
        rs.close();
    }

    @Override
    protected void initParam() {
        SysAddTime = ""; //创建时间
        KeyUnid = ""; //单据关联
        Approver = ""; //办理人账号ID
        FlowId = ""; //当前流程
        StepId = ""; //当前环节
        StepType = ""; //环节类型
        FlowType = 0; //流程类型 0 主  1 子
        StepName = ""; //环节名称
    }


    public void initParamToRs(ResultSet rs) throws SQLException{
        SysAddTime = rs.getString("SysAddTime"); //创建时间
        KeyUnid = rs.getString("KeyUnid"); //单据关联
        Approver = rs.getString("Approver"); //办理人账号ID
        FlowId = rs.getString("FlowId"); //当前流程
        StepId = rs.getString("StepId"); //当前环节
        StepType = rs.getString("StepType"); //环节类型
        FlowType = rs.getInt("FlowType"); //流程类型 0 主  1 子
        StepName = rs.getString("StepName"); //环节名称
        this.setKeyId(rs.getString("RecordId"));
    }


    @Override
    protected int appendData() throws SQLException {
        int i = 1;
        prepareSql.setPstValue(i++,SysAddTime); //创建时间
        prepareSql.setPstValue(i++,KeyUnid); //单据关联
        prepareSql.setPstValue(i++,Approver); //办理人账号ID
        prepareSql.setPstValue(i++,FlowId); //当前流程
        prepareSql.setPstValue(i++,StepId); //当前环节
        prepareSql.setPstValue(i++,StepType); //环节类型
        prepareSql.setPstValue(i++,FlowType); //流程类型 0 主  1 子
        prepareSql.setPstValue(i++,StepName); //环节名称
        return i;
    }


    @Override
    public Vector<String> getFields() {
        Vector<String> vec = new Vector<String>();
        vec.addElement("SysAddTime"); //创建时间
        vec.addElement("KeyUnid"); //单据关联
        vec.addElement("Approver"); //办理人账号ID
        vec.addElement("FlowId"); //当前流程
        vec.addElement("StepId"); //当前环节
        vec.addElement("StepType"); //环节类型
        vec.addElement("FlowType"); //流程类型 0 主  1 子
        vec.addElement("StepName"); //环节名称
        return vec;
    }


    /**
     * 设置创建时间
     * @param sysaddtime 创建时间
     */
    public void setSysAddTime(String sysaddtime){
        SysAddTime = sysaddtime;
    }
    /**
     * 获取SysAddTime
     * @return 创建时间
     */
    public String getSysAddTime(){
        return SysAddTime;
    }

    /**
     * 设置单据关联
     * @param keyunid 单据关联
     */
    public void setKeyUnid(String keyunid){
        KeyUnid = keyunid;
    }
    /**
     * 获取KeyUnid
     * @return 单据关联
     */
    public String getKeyUnid(){
        return KeyUnid;
    }

    /**
     * 设置办理人账号ID
     * @param approver 办理人账号ID
     */
    public void setApprover(String approver){
        Approver = approver;
    }
    /**
     * 获取Approver
     * @return 办理人账号ID
     */
    public String getApprover(){
        return Approver;
    }

    /**
     * 设置当前流程
     * @param flowid 当前流程
     */
    public void setFlowId(String flowid){
        FlowId = flowid;
    }
    /**
     * 获取FlowId
     * @return 当前流程
     */
    public String getFlowId(){
        return FlowId;
    }

    /**
     * 设置当前环节
     * @param stepid 当前环节
     */
    public void setStepId(String stepid){
        StepId = stepid;
    }
    /**
     * 获取StepId
     * @return 当前环节
     */
    public String getStepId(){
        return StepId;
    }

    /**
     * 设置环节类型
     * @param steptype 环节类型
     */
    public void setStepType(String steptype){
        StepType = steptype;
    }
    /**
     * 获取StepType
     * @return 环节类型
     */
    public String getStepType(){
        return StepType;
    }

    /**
     * 设置流程类型 0 主  1 子
     * @param flowtype 流程类型 0 主  1 子
     */
    public void setFlowType(int flowtype){
        FlowType = flowtype;
    }
    /**
     * 获取FlowType
     * @return 流程类型 0 主  1 子
     */
    public int getFlowType(){
        return FlowType;
    }

    /**
     * 设置环节名称
     * @param stepname 环节名称
     */
    public void setStepName(String stepname){
        StepName = stepname;
    }
    /**
     * 获取StepName
     * @return 环节名称
     */
    public String getStepName(){
        return StepName;
    }

}
